'''
#自定义数据得到相应平衡温度
m1=float(input('热水质量:'))
m2=float(input('构件质量:'))
t=float(input('构件初温:'))
T1=float(input('热水初温:'))
i=input('输入热水平分次数:')
c1=4.2
c2=c1*1.2*33.8/(4.2*46.2)
j=0
while int(j)<int(i):
      t=(c1*T1*m1/float(i)+c2*m2*t)/(c1*m1/float(i)+c2*m2)
      j=j+1
print('平衡温度:',end='')
print('%.1f' %(t),end='')
print('℃')
'''
'''
#在设定温度下获取最小热水平分次数
m1=1.2  #水总质量
m2=4.2  #构件质量
t=10    #构件初温
T1=90   #热水初温
t1=61   #设定温度
c1=4.2
c2=c1*m1*(T1-56.2)/(m2*(56.2-t))
i=0
j=0
while t<t1:
      i+=1             
      j=0
      t=10
      while int(j)<int(i):
             t=(c1*T1*m1/i+c2*m2*t)/(c1*m1/i+c2*m2)
             j=j+1
print('达到设定温度的分割次数：'+str(i))
print('最终热平衡温度：',end='')
print('%.1f' %(t),end='')
print('℃')
'''
'''
#在理想喷淋状态（无限细分）下所能达到的最高热平衡温度
m1=1.2  #水总质量
m2=4.2  #构件质量
t=10    #构件初温
T1=90   #热水初温
a=0.001 #温度精度
c1=4.2
c2=c1*m1*(T1-56.2)/(m2*(56.2-t))

i=0
j=0
b=0
flag=1
while flag==1:
      i+=1             
      j=0
      t=10
      while int(j)<int(i):
            t=(c1*T1*m1/i+c2*m2*t)/(c1*m1/i+c2*m2)
            j=j+1
      if t>b+a:
            b=t
      else:
            flag=0
print('达到极限温度的最小平分次数：'+str(i))
print('极限热平衡温度：',end='')
print('%.1f' %(t),end='')
print('℃')
'''

#热水平分次数对最终平衡温度的影响
m1=1.2  #水总质量
m2=4.2  #构件质量
T=10    #构件初温
T1=90   #热水初温
c1=4.2
c2=c1*m1*(T1-56.2)/(m2*(56.2-T))
i=0
j=0
list1=[]
list2=[]
import numpy as np
import matplotlib.pyplot as plt
while i<150:
      i+=1             
      j=0
      T=10
      while int(j)<int(i):
             T=(c1*T1*m1/i+c2*m2*T)/(c1*m1/i+c2*m2)
             j=j+1
      list1.append(i)
      list2.append(T)
plt.plot(list1,list2)     
plt.title('T-i')
plt.xlabel('i')
plt.ylabel('T-℃')

plt.scatter(139,69.47,color='r')
plt.vlines(139,56.1,69.47,color='r',linestyles='dashed')
plt.hlines(69.47,0,139,color='r',linestyles='dashed')
plt.scatter(1,56.2,color='r')
plt.scatter(2,61.77,color='r')
plt.scatter(3,63.9,color='r')
plt.show()

